package interview.美团;

import java.util.Scanner;
//优美字符串
//        时间限制： 3000MS
//        内存限制： 589824KB
//        题目描述：
//        小团有一个长度为n的只包含小写字母的字符串。他定义一个字符串是优美的，当且仅当这个字符串的字符的所有排列中，存在一种排列使得这个串不是回文串。定义一个串是回文串，当且仅当从左往右与从右往左读出的字符串相同，例如a,aba,abba都是回文串，但ab,abcb不是。
//
//        小团不清楚这个串是否是优美的，于是将这个难题抛给了小美。你能帮助小美吗？
//
//
//
//        输入描述
//        第一行一个正整数T，表示有T组数据。
//
//        接下来对于每一组数据，一个仅包含小写字母的字符串。
//
//        设该字符串长度为n，则：
//
//        对于100%的数据，1≤n≤105,1≤T≤5。
//
//        输出描述
//        输出仅一行，如果这个字符串是优美的，输出YES；否则，输出NO。
//
//
//        样例输入
//        2
//        cabac
//        a
//        样例输出
//        YES
//        NO
// 64
public class 题目一 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int group = scanner.nextInt();
        for (int i = 0; i < group; i++) {
            String str = scanner.next();
            if (isBeautiful(str, 0)) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
        }
    }

    private static boolean isBeautiful(String str, int level) {
        if (str == null || str.length() == 0) {
            return false;
        }
        if (level == str.length()) {
            return !isReString(str);
        } else {
            for (int i = level; i < str.length(); i++) {
                str = swap(str, level, i);
                if (isBeautiful(str, level + 1)) {
                    return true;
                }
                str = swap(str, level, i);
            }
            return false;
        }
    }

    private static String swap(String str, int i, int j) {
        char[] chars = str.toCharArray();
        char temp = chars[i];
        chars[i] = chars[j];
        chars[j] = temp;
        return new String(chars);
    }

    private static boolean isReString(String str) {
        int length = str.length();
        for (int i = 0; i < length / 2; i++) {
            if (str.charAt(i) != str.charAt(length - i - 1)) {
                return false;
            }
        }
        return true;
    }
}
